Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

Node / meshtastic / Meshtastic-Android / files / docs / en / developer.md

Displaying Rendered β€’ View raw β€’ Download

docs/en/developer.md ba63f5911a128c8a9bd2a8cdb567a76f09df7e01 (ba63f591) Text, 3.84 KB

title: Developer Guide
layout: default
nav_order: 2
has_children: true

Developer Guide

Technical documentation for contributing to the Meshtastic Android and Desktop app.


Before You Open a PR

Things that trip up first-time contributors β€” check these before requesting review:

β€’ Formatting passes β€” run T383838./gradlew spotlessApply to auto-format, then verify with T383838spotlessCheck
β€’ Detekt passes β€” run T383838./gradlew detekt and fix all reported issues
β€’ All tests pass β€” run T383838./gradlew test allTests (both are needed: T383838test covers Android-only modules, T383838allTests covers KMP)
β€’ Screenshot tests pass β€” if you touched any Compose UI, run T383838./gradlew :screenshot-tests:validateDebugScreenshotTest and update reference images if needed
β€’ Protos are an external dependency β€” protobuf models come from the T383838org.meshtastic:protobufs Maven artifact (pinned in T383838gradle/libs.versions.toml); change protos upstream and bump the version, never edit generated code locally
β€’ Docs updated β€” if you changed user-visible UI, update the corresponding page under T383838docs/en/user/
β€’ Previews updated β€” if you changed UI composables, update the corresponding T383838*Previews.kt file and the screenshot-test baselines
β€’ Branch naming β€” branches must start with T383838feat/, T383838fix/, T383838chore/, T383838docs/, T383838build/, T383838ci/, T383838refactor/, T383838test/, or T383838deps/


What's New for Developers

<!-- DEVWHATSNEW_START -->
<!-- Add new entries at the top. Format:
Month YYYY β€” Page or area β€” One sentence on what changed architecturally or procedurally.
Keep the last 5–8 entries and trim older ones from the bottom.
-->

July 2026 β€” Test Builds & Obtainium β€” New page, replacing the root T383838obtainium-test-builds.md. Distributable Obtainium configurations now live in T383838obtainium/ (importable export, one-tap link generator, config-site submission).

July 2026 β€” Map layer stack (T383838MapLayer.kt, T383838MapLayersManager, GeoJSON/KML import, Site Planner) extracted from the Google flavor into shared T383838androidApp/src/main source (#6148) β€” F-Droid now renders imported overlays via a new OSMdroid-based renderer, so both flavors compile one implementation.

July 2026 β€” Persistence β€” Local Mesh Discovery sessions and cached T383838msh.to device links now persist to Room (T383838DiscoverySessionEntity, T383838DiscoveryPresetResultEntity, T383838DiscoveredNodeEntity, T383838DeviceLinkEntity).

June 2026 β€” Architecture / Codebase β€” Protos migrated from the T383838core/proto git submodule to the T383838org.meshtastic:protobufs Maven artifact; there is no longer a local proto module to build or sync.

June 2026 β€” AIDL/T383838IMeshService removed (#5586). The mesh service is now in-process only, driven entirely through T383838RadioController β€” no cross-process binder, no T383838aidl stubs.

June 2026 β€” Testing β€” Split the screenshot pipeline: the new generate-only T383838:docs-screenshots module holds doc-framed compositions, while T383838:screenshot-tests stays the CI visual-regression gate β€” so reframing a doc image no longer churns a test baseline.

June 2026 β€” New feature modules: T383838feature:discovery (mesh network discovery, #5275) and T383838feature:car (Android Auto / Car App Library, google flavor only, #5633).

June 2026 β€” Testing β€” Added the T383838:baselineprofile module (#5735): a Macrobenchmark cold-start journey generates a Baseline Profile for T383838:androidApp to AOT-compile hot startup paths.

June 2026 β€” Persistence β€” FTS5 full-text message search (#5373): a T383838PacketFts virtual table mirrors T383838Packet.messageText, kept in sync by Room-managed triggers.

<!-- DEVWHATSNEW_END -->

Served by rngit 1.5.0 - Generated in 0.03s